1. Field of the Invention
The present invention relates generally to data flow type information processors, and more particularly, it relates to data flow type information processors wherein a plurality of instructions are simultaneously driven by data and a method of operating the same.
2. Description of the Background Art
In a conventional von Neuman type computer, various instruction are stored as program in program memories in advance, and addresses in the program memories are sequentially designated by a program counter to sequentially read the instructions to be executed.
A data flow type information processor is one type of non-von Neuman type computers without a concept of sequential execution of instructions by a program counter. Such data flow type information processor employs architecture based on a parallel processing of instructions. In the data flow type information processor, collection of data which are objects of an operation renders an instruction executable and a plurality of instructions are simultaneously driven by the data, so that program is executed in parallel in accordance with the natural flow of the data. As a result, it is considered that the time required for the operation is significantly reduced.
FIG. 20 is a block diagram showing one example of a structure of a conventional data flow type information processor. FIG. 21 is a diagram showing one example of a field arrangement of a data packet to be processed by the information processor.
A data packet shown in FIG. 21 includes a destination field, an instruction field, a data 1 field, and a data 2 field. The destination field stores destination information, the instruction field stores instruction information, and the data 1 field or the data 2 field stores operand data.
The information processor shown in FIG. 20 includes a program storing portion 1, a data pair detecting portion 2 and an operation processing portion 3. The program storing portion 1 stores a data flow program 10 shown in FIG. 22. Each row of the data flow program 10 includes destination information 11, instruction information 12, copy presence/absence information 13 and constant presence/absence information 14. Constant "presence" information indicates that the subsequent row stores constant data 15. The program storing portion 1 reads, as shown in FIG. 22, destination information 11, instruction information 12, copy presence/absence information 13 and constant absence/presence information 14 of the data flow program 10 by addressing based on the destination information of an input data packet, stores the destination information 11 and the instruction information 12 in the destination field and the instruction field of the data packet, respectively, and outputs the data packet.
The data pair detecting portion 2 queues data packets output from the program storing portion 1. More specifically, when the instruction information indicates a 2 input instruction, the data pair detecting portion 2 detects two different data packets having the same destination information, stores operand data of one of the data packets (the contents of the data 1 field shown in FIG. 21) in the data 2 field of the other data packet, and outputs the other data packet. When the instruction information indicates a 1 input instruction, an input data packet is output without modification.
The operation processing portion 3 performs an operation processing based on instruction information with respect to a data packet output from the data pair detecting portion 2, stores the result of the operation processing in the data 1 field of the data packet, and outputs the data packet to the program storing portion 1.
The program storing portion 1 and the data pair detecting portion 2 are coupled to each other by a two data transmission paths 4a and 4b. A data packet output from the program storing portion 1 is selectively transmitted by either the data transmission paths 4a or 4b according to whether the operand data is right operand data or left operand data in the operation processing. In addition, the data pair detecting portion 2 and the operation processing portion 3 are coupled to each other by a data transmission path 5 and the operation processing portion 3 and the program storing portion 1 are coupled to each other by a data transmission path 6.
As the data packets continue to circulate through the program storing portion 1, the data pair detecting portion 2, the operation processing portion 3 and the program storing portion 1 . . . , the operation processing proceeds in accordance with the data flow program 10 stored in the program storing portion 1.
FIG. 23 is a diagram showing one example of a data flow graph. In FIG. 23, nodes N1, N2 and N3 denote instructions of addition, multiplication and subtraction, respectively. Nodes N4 and N5 indicate instructions of increment and decrement, respectively. The instructions of the nodes N1, N2 and N3 are 2 input instructions and the instructions of the nodes N4 and N5 are 1 input instructions. The operation result of the nodes N1 is referred to by the nodes N2 and N3. In this case, a copy processing is performed in the program storing portion 1.
The copy processing will be now described. First, the contents of a row addressed based on the destination information of an applied data packet are read out from the data flow program. At this time, when the copy presence/absence information 13 indicates "absence", a data packet is output with the contents of its destination field and instruction field updated to complete the processing.
Conversely, when the copy presence/absence information 13 indicates "presence", a data packet is output with the contents of its destination field and instruction field updated, and destination information 11, instruction information 12, copy presence/absence information 13, and constant presence/absence information 14 stored in the subsequent row are read out. When the copy presence/absence information 13 read out from the subsequent row indicates "absence", the same data as that of the input data packet is stored in the data 1 field of another data packet and the destination information and the instruction information which have been just read out are respectively stored in the destination field and the instruction field of said another data packet, and said another data packet is output. If the copy presence/absence information 13 read out from the subsequent row indicates "presence", the same copy processing will be further repeated.
When the constant absence/presence information 14 indicates "presence", a constant outputting processing will be carried out for reading constant data 15 stored in the subsequent row.
In the above described information processor, when a copy processing or a constant outputting processing is once performed, a flow rate of data packets input to the program storing portion 1 to data packets output from the program storing portion 1 becomes 1:2 without fail. Here, the flow rate of the data packets represents the number of data packets passing through the respective portions per hour.
FIGS. 24 and 25 show a flow rate of data packets on each transmission path, supposing that the flow rate of data packets on the transmission path 6 is 1.
FIG. 24 shows flow rates of data packets in a case where the data flow program includes 0% 1 input instruction and 100% 2 input instructions and all the instructions include a copy processing or a constant outputting processing. When a copy processing or a constant outputting processing is carried out at the program storing portion 1, the flow rate of both of the data transmission paths 4a and 4b becomes 1. When the instruction information indicates a 2 input instruction, each data packet in the data pair detecting portion 2 waits for a data packet which is to be paired with to be input, whereby data packets are output at a flow rate of 0.5 for the flow rate 1 of the data transmission paths 4a and 4b. As a result, a data packet with a flow rate of 1 is input to the operation processing portion 3.
FIG. 25 is a diagram showing flow rates of data packets in a case (a worst case) where 100% 1 input instructions and 0% 2 input instruction are included and all the instructions include a copy processing or a constant outputting processing. A copy processing or a constant outputting processing carried out in the program storing portion 1 makes the flow rates of both the data transmission paths 4a and 4b1. When the instruction information indicates a 1 input instruction, each data packet does not wait for a data packet to be paired in the data pair detecting portion 2, whereby a data packet with a flow rate of 1 is output for each of the data transmission paths 4a and 4b with a flow rate of 1. The maximum flow rate of the data transmission path 5 is 1 and therefore, the operation processing portion 3 receives only a data packet with a flow rate of 1 as in the case shown in FIG. 24.
As described above, a conventional data flow type information processor performs a processing at its highest operation rate when a data flow program to be executed includes 100% 2 input instructions. Therefore, more 1 input instructions included in a data flow program prevents the data flow program from achieving its original processing efficiency.
In addition, a data packet circulating through the respective processing portions in the information processor based on the order of execution of the data flow program stored in the program storing portion 1 is processed in the form shown in FIG. 21, so that a width of a data line (a data transmission path) connecting the respective processing portions has an unnecessary margin.
That is, read of a data flow program from the program storing portion 1 fundamentally requires only the contents of a destination field in a data packet which packet designates subsequent instruction information and does not require the contents of an instruction field, a data 1 field and a data 2 field of the data packet. In addition, the operation processing portion 3 also requires the contents of the instruction field, the data 1 field and the data 2 field of the data packet but not the contents of the destination field of the data packet. This prevents an effective use of area in an arrangement of an information processor.